import {filterObj} from '@/utils/util';
import {deleteAction, downFile, getAction} from '@/api/manage'
import Vue from 'vue'
import {ACCESS_TOKEN} from "@/store/mutation-types"
import JEllipsis from '@/components/jeecg/JEllipsis'

export const activitiMixin = {
  components: {
    JEllipsis
  },
  data(){
    return {
      //token header
      ACCESS_TOKEN: {'X-Access-Token': Vue.ls.get(ACCESS_TOKEN)},
      url:{
        onl_form_head:'sys/dict/getDictItems/onl_cgform_head,table_txt,table_name',
      },
      allFormComponent:[]
    }

  },
  created(){
    this.getTable();
  },
  computed:{
    historicDetail:function () {
      return () => import(`@/views/activiti/historicDetail`)
    }
  },
  methods:{
    /*todo 所有的流程表单，组件化注册，在此维护*/
    getTable(){
      getAction(this.url.onl_form_head,{dictWhere:"table_type in(0,1) and form_category='bpm' and is_db_synch='Y'"}).then((res)=>{
        if (res.success){
          let list=[];
          for (var i = 0 ; i<res.result.length; i++){
            let data = res.result[i];
            var table = {
              text:data.text,
              routeName:'@/views/activiti/form/demoForm',
              component:() => import(`@/views/activiti/form/demoForm`),
              businessTable:data.value
            }
            list.push(table);
          }
          this.allFormComponent =  list;
        }else {
          this.$message.error(res.message)
        }
      })
    },
    getFormComponent(routeName){
      return _.find(this.allFormComponent,{routeName:routeName})||{};
    },
    millsToTime(mills) {
      if (!mills) {
        return "";
      }
      let s = mills / 1000;
      if (s < 60) {
        return s.toFixed(0) + " 秒"
      }
      let m = s / 60;
      if (m < 60) {
        return m.toFixed(0) + " 分钟"
      }
      let h = m / 60;
      if (h < 24) {
        return h.toFixed(0) + " 小时"
      }
      let d = h / 24;
      if (d < 30) {
        return d.toFixed(0) + " 天"
      }
      let month = d / 30
      if (month < 12) {
        return month.toFixed(0) + " 个月"
      }
      let year = month / 12
      return year.toFixed(0) + " 年"

    },
    handleTableChange(pagination, filters, sorter) {
      //分页、排序、筛选变化时触发
      //TODO 筛选
      if (Object.keys(sorter).length > 0) {
        this.isorter.column = sorter.field;
        this.isorter.order = "ascend" == sorter.order ? "asc" : "desc"
      }
      this.ipagination = pagination;
      // this.loadData();
    },
    //根据key 获取流程定义数据
    getProcessDefByKey(key){
      let procDef = null;
      let newestProcessList = JSON.parse(window.sessionStorage.getItem("newestProcessList"));
      newestProcessList.forEach(function(item) {
        if(item.processKey === key){
          procDef = item;
        }
      });
      return procDef;
    },
  }

}